home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Blogowanie poza sfera / Flock 0.9.1.3 stable / flock-0.9.1.3.en-US.win32.exe / flock / chrome / browser.jar / content / browser / EULA.js < prev    next >
Text File  |  2006-09-22  |  4KB  |  134 lines

  1. //@line 39 "/cygdrive/K/tinderbuild/src/flock/mozilla/browser/base/content/EULA.js"
  2.  
  3. var gEULADialog = {
  4.   /**
  5.    * The nsIWebProgress object associated with the privacy policy frame.
  6.    */
  7.   _webProgress: null,
  8.  
  9.   /**
  10.    * Initializes UI and starts the privacy policy loading.
  11.    */
  12.   init: function ()
  13.   {
  14.     sizeToContent();
  15.     const Cc = Components.classes, Ci = Components.interfaces;
  16.  
  17.     // add progress listener to enable OK, radios when page loads
  18.     var frame = document.getElementById("EULATextFrame");
  19.     var webProgress = frame.docShell
  20.                            .QueryInterface(Ci.nsIInterfaceRequestor)
  21.                            .getInterface(Ci.nsIWebProgress);
  22.     webProgress.addProgressListener(this._progressListener,
  23.                                     Ci.nsIWebProgress.NOTIFY_STATE_WINDOW);
  24.  
  25.     this._webProgress = webProgress; // for easy use later
  26.  
  27.     var eulaURL = "chrome://browser/content/EULA.xhtml";
  28.  
  29.     // start loading the privacyURL
  30.     const loadFlags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
  31.     frame.webNavigation.loadURI(eulaURL, loadFlags, null, null, null);
  32.  
  33.   },
  34.  
  35.   /**
  36.    * The nsIWebProgressListener used to watch the status of the load of the
  37.    * privacy policy; enables the OK button when the load completes.
  38.    */
  39.   _progressListener:
  40.   {
  41.     /**
  42.      * True if we tried loading the first URL and encountered a failure.
  43.      */
  44.     _loadFailed: false,
  45.  
  46.     onStateChange: function (aWebProgress, aRequest, aStateFlags, aStatus)
  47.     {
  48.       // enable the OK button when the request completes
  49.       const Ci = Components.interfaces, Cr = Components.results;
  50.       if ((aStateFlags & Ci.nsIWebProgressListener.STATE_STOP) &&
  51.           (aStateFlags & Ci.nsIWebProgressListener.STATE_IS_WINDOW)) {
  52.         // check for failure
  53.         if (!Components.isSuccessCode(aRequest.status)) {
  54.           if (!this._loadFailed) {
  55.             this._loadFailed = true;
  56.  
  57.             // fire off a load of the fallback policy
  58.             const loadFlags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
  59.             const fallbackURL = "chrome://browser/content/preferences/fallbackEULA.xhtml";
  60.             var frame = document.getElementById("EULATextFrame");
  61.             frame.webNavigation.loadURI(fallbackURL, loadFlags, null, null, null);
  62.  
  63.             // disable radios
  64.             document.getElementById("acceptOrDecline").disabled = true;
  65.           }
  66.           else {
  67.             throw "Fallback policy failed to load -- what the hay!?!";
  68.           }
  69.         }
  70.       }
  71.     },
  72.     
  73.     onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress,
  74.                                aMaxSelfProgress, aCurTotalProgress,
  75.                                aMaxTotalProgress)
  76.     {
  77.     },
  78.  
  79.     onStatusChange : function(aWebProgress, aRequest, aStatus, aMessage)
  80.     {
  81.     },
  82.  
  83.     QueryInterface : function(aIID)
  84.     {
  85.       const Ci = Components.interfaces;
  86.       if (aIID.equals(Ci.nsIWebProgressListener) ||
  87.           aIID.equals(Ci.nsISupportsWeakReference) ||
  88.           aIID.equals(Ci.nsISupports))
  89.         return this;
  90.       throw Components.results.NS_NOINTERFACE;
  91.     }
  92.   },
  93.  
  94.   /**
  95.    * Make sure we set the pref on acceptance so we don't show the EULA again
  96.    */
  97.   accept: function ()
  98.   {
  99.     var prefService = Components.classes["@mozilla.org/preferences-service;1"]
  100.                                 .getService(Components.interfaces.nsIPrefBranch);
  101.     var EULAVersion = prefService.getIntPref("browser.EULA.version");
  102.     prefService.setBoolPref("browser.EULA." + EULAVersion + ".accepted", true);
  103.   },
  104.  
  105.   /**
  106.    * If the user did not accept the EULA, kill the app.
  107.    */
  108.   cancel: function ()
  109.   {
  110.     const appStartup = Components.classes['@mozilla.org/toolkit/app-startup;1']
  111.                                  .getService(Components.interfaces.nsIAppStartup);
  112.     appStartup.quit(appStartup.eForceQuit);
  113.   },
  114.  
  115.   /**
  116.    * Clean up any XPCOM-JS cycles we may have created.
  117.    */
  118.   uninit: function ()
  119.   {
  120.     // overly aggressive, but better safe than sorry
  121.     this._webProgress.removeProgressListener(this._progressListener);
  122.     this._progressListener = this._webProgress = null;
  123.   },
  124.  
  125.   /**
  126.    * Called when the user changes the agree/disagree radio.
  127.    */
  128.   onChangeRadio: function ()
  129.   {
  130.     var radio = document.getElementById("acceptOrDecline");
  131.     document.documentElement.getButton("accept").disabled = (radio.value == "false");
  132.   }
  133. };
  134.